home *** CD-ROM | disk | FTP | other *** search
/ JCSM Shareware Collection 1996 September / JCSM Shareware Collection (JCS Distribution) (September 1996).ISO / bother__ / cenvid.zip / CENVIDOS.ZIP / ENVSORT.BAT < prev    next >
DOS Batch File  |  1994-10-05  |  2KB  |  60 lines

  1. @echo OFF
  2. REM ****************************************************************
  3. REM *** EnvSort.bat - Sort environment variables alphabetically. ***
  4. REM *** ver.1         This works by writing a temporary batch    ***
  5. REM ***               file to set all of the environment         ***
  6. REM ***               variables in alphabetic order, then        ***
  7. REM ***               removing the batch file.                   ***
  8. REM ****************************************************************
  9. ECHO SORTING ENVIRONMENT VARIABLES...
  10.  
  11.  
  12. REM *** USE TEMP OR TMP VARIABLE TO FIND DIRECTORY ***
  13. REM *** TO STORE TEMPORARY FILE                    ***
  14. SET __BAT=.
  15. IF NOT "%TMP%"=="" SET __BAT=%TEMP%
  16. IF NOT "%TEMP%"=="" SET __BAT=%TEMP%
  17. REM REMOVE BACKSLASH IF THERE IS ONE
  18. CEnviD i=strlen(__BAT); if(__BAT[i-1]=='\\') __BAT[i-1]=0;
  19. SET __BAT=%__BAT%\_ENVSORT.BAT
  20.  
  21. SET | CEnviD %0.bat
  22. GOTO CENVI_EXIT
  23.  
  24.    // Build list of all environment variables
  25.    Count = 0;
  26.    while ( ELine = gets() )
  27.       Lines[Count++] = ELine;
  28.  
  29.    // Sort variable lines
  30.    qsort(Lines,Count,"strcmpi");
  31.  
  32.    // open temporary batch output file
  33.    if ( !(fp = fopen(__BAT,"wt")) ) {
  34.       printf("Error opening \"%s\" for writing.\a",__BAT);
  35.       exit(EXIT_FAILURE);
  36.    }
  37.  
  38.    // for each variable, write out to set to nothing
  39.    for ( i = 0; i < Count; i++ ) {
  40.       ELine = Lines[i];
  41.       if ( Equal = strchr(ELine,'=') )
  42.          fprintf(fp,"SET %.*s\n",Equal-ELine+1,ELine);
  43.    }
  44.  
  45.    // write out all the variable lines to batch file
  46.    for ( i = 0; i < Count; i++ )
  47.       fprintf(fp,"SET %s\n",Lines[i]);
  48.  
  49.    // all done. close batch file
  50.    fclose(fp);
  51.  
  52. :CENVI_EXIT
  53.  
  54. REM *** PLAY BACK THE TEMPORARY BATCH FILE; ALL DONE
  55. CALL %__BAT%
  56. DEL %__BAT%
  57. SET __BAT=
  58.  
  59. REM *** ENVIRONMENT
  60.